草庐IT

c++ - Swig -includeall 除了...

全部标签

java - 如何使用 SWIG 生成的接口(interface)将字符串从 Java 传递给 C++ 函数

我有一堆以Cstd:string作为函数参数的C++函数。我想将java字符串传递给那些函数。我已经在J​​ava和C++之间生成了一个SWIGJNI接口(interface)。我可以看到无参数构造函数很好,但是如果我尝试在构造函数中使用String参数编译我的java,我会得到“找不到符号”,我认为这是因为类构造函数的方式发生了一些有趣的事情被定义。如何解决这个问题?类型图是答案吗?如果是这样-你从哪里开始? 最佳答案 一种方法,如果您要调用一小组函数,可能是简单地将采用std::string的C++方法与采用char*的方法包装

c++ - 时间函数语法

为什么time函数通常是这样使用的:time_tcurrentTime;currentTime=time(NULL);而不是这个:time_tcurrentTime;time(¤tTime);第一种方法被更多地使用是因为它可以说更具可读性吗?还是另有原因?谢谢。编辑:另外,为什么time函数要这样设计?为什么有两种设置变量的方法? 最佳答案 从函数返回值似乎总是比传递已更改的参数更有意义。这可能是因为我们学的是函数和子程序不同的语言,不知道现在这些年轻人。 关于c++-时间函

c++ - 多播接收器套接字中的重复数据包

这个问题在这里已经有了答案:Receivingmultiplemulticastfeedsonthesameport-C,Linux(8个答案)关闭7年前。在下面的MulticastReceiver实现中似乎有一个错误。在为和创建两个实例时,我在每个流中获取每个数据包两次。任何指针?我猜是REUSEADDR?classMulticastReceiverSocket{protected:conststd::stringlisten_ip_;constintlisten_port_;intsocket_file_descriptor_;public:MulticastReceiverSoc

java - 在 Java/C/C++ 中创建 MIPS 机器

大家好,我正在上汇编语言和计算机组织类(class)。最近我接到一项任务,要求我创建一个程序,该程序用Java、C或C++模拟MIPS机器。程序从ASM文件中读取十六进制并将行存储在数组中。然后它应该模拟MIPS机器。我一直在四处寻找,但不知道如何开始。有没有人有一些想法甚至伪代码让我走上正确的道路?要读取的文件示例:240800192409001e240a002301094020010a402000082021如果有人能让我走上正确的道路,那就太好了,谢谢! 最佳答案 您需要做的第一件事就是学会破译这些指令。看起来它们是8个十六进

c++ - 是否有模板元程序来确定编译器在编译时的字节顺序?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:IsthereawaytodoaC++stylecompile-timeassertiontodeterminemachine'sendianness?我正在寻找一个本着Boost::type_traitsspirit的模板元程序,它会返回编译器是大端还是小端。类似于is_big_endian.这个怎么写?这个的用途是创建一个库,通过基于字节顺序实现特定的模板特化,自动适应环境。例如,templatevoidcopy_big_endian_impl(T*dst,constT*src,size_tsz){//s

c++ - 如何避免在从 .so 调用函数抛出异常时崩溃

这是我所做的,我想优雅地处理这个异常:代码片段:我的.cpp#includeextern"C"voidsome_func(){throw"(ExceptionThrownbysome_func!!)";}代码片段:exception.c#includeexternvoidsome_func();intso_main(){some_func();return0;}从上面的两个片段中,我使用以下命令创建了一个shared_objectlibexception.so:g++-c-fPICsrc/my.cppgcc-c-ansi-fPICsrc/exception.cg++-fPIC-shar

c++ win32 使用 DirectInput 模拟按键

如何使用DirectInput模拟按键?我目前有初始化(但我不确定它是否好):#include#pragmacomment(lib,"dinput8.lib")#pragmacomment(lib,"dxguid.lib")LPDIRECTINPUT8din;//thepointertoourDirectInputinterfaceLPDIRECTINPUTDEVICE8dinkeyboard;//thepointertothekeyboarddeviceBYTEkeystate[256];//thestorageforthekey-informationvoidinitDInput(

Python 中的 C++ API - SWIG、重新设计或消息传递

好的,这里是快速且希望简单的问题...我有一个大型C++API,它基本上是一个带有顶级XML类型协议(protocol)的套接字API。这是一个公司的分布式源码包。由于一些奇怪的原因,所有源代码都被写入头文件(包括函数实现)(我猜他们认为开发人员更容易导入H文件而不必担心编译多个cpp文件??)。该源代码还提供C、Java和.NET版本。我正在编写的应用程序是在Linux上使用Python编写的,需要通过Python使用此API。我的三个选项似乎是要么单独运行应用程序,在它们之间使用消息传递协议(protocol),运行SWIG(或类似的)以生成PythonHook,要么将所有源代码重

C++转义码参数

我正在查看我们一位客户的一些代码,发现了这个我以前从未见过的函数参数:some_function('ESFc');在调试器中,我将值设置为charc='ESFc';等于99他还使用了“ESSc”、“ESCm”和“ESBd”,它们分别为99、109和100这是什么?它是某种转义码吗? 最佳答案 它是一个多字符字面量,但它的值不是99。'ESFc'的类型实际上是一个int,当你将它存储在一个char它失去了精度。看到这个问题:WhatdosinglequotesdoinC++whenusedonmultiplecharacters?

c++ - 我可以信任 ceil() 结果的实数到整数的转换吗?

假设我有一些代码,例如:floata,b=...;//bothpositiveints1=ceil(sqrt(a/b));ints2=ceil(sqrt(a/b))+0.1;s1!=s2有可能吗?我担心的是什么时候a/b是一个完美的正方形。例如,也许a=100.0和b=4.0,那么ceil的输出应该是5.00000但是什么如果它是4.99999?类似的问题:是否有可能100.0/4.0的计算结果为5.00001然后ceil将其四舍五入为6.00000?我更喜欢用整数数学来做这个,但是sqrt有点搞砸了这个计划。编辑:关于如何更好地实现这一点的建议也将不胜感激!a和b值是整数值,因此实际